-- createStream2.lua
local streamKey = KEYS[1]
local group = ARGV[1]
local id = ARGV[2]

-- 检查 Stream 是否存在
local streamsInfo = redis.call('XINFO', 'STREAM',streamKey)

local streamExists = false
for i = 1, #streamsInfo, 2 do
    if streamsInfo[i] == streamKey then
        -- Stream 已存在
        streamExists = true
        break
    end
end

-- 根据 Stream 是否存在，决定是否创建 Stream 和消费组
if not streamExists then
    -- Stream 不存在，创建 Stream 和消费组
    redis.call('XGROUP', 'CREATE', streamKey, group, id, 'MKSTREAM')
else
    -- Stream 已存在，仅创建消费组
    redis.call('XGROUP', 'CREATE', streamKey, group, id)
end